
/**
 *
 * @param {*} arr 数组中
 * @param {*} attribute  数组中属性
 * @param {*} info 对比的值
 * @returns true 有  false 没有
 */
export const ArrFilter = (arr, attribute, info) => {

  return arr.some(item => {
    return item[`${attribute}`] === info
  })
}

/**
 * 处理时间
 */
export const handleTime = (time) => {
  if (!time) {
    return '--'
  }
  let date = new Date(time)
  let y = date.getFullYear()
  let m = date.getMonth() + 1
  m = m < 10 ? '0' + m : m
  let d = date.getDate()
  d = d < 10 ? '0' + d : d
  let h = date.getHours()
  h = h < 10 ? '0' + h : h
  let minute = date.getMinutes()
  minute = minute < 10 ? '0' + minute : minute
  let s = date.getSeconds()
  s = s < 10 ? '0' + s : s
  return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + s
}

/**
 * 处理：数字金额转换为中文大写
 * @param money 数字金额
 * @returns {string} 中文大写金额
 */
export const changeNumMoneyToChinese = (money) => {
  let n
  let i
  let cnNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'] //汉字的数字
  let cnIntRadice = ['', '拾', '佰', '仟'] //基本单位
  let cnIntUnits = ['', '万', '亿', '兆'] //对应整数部分扩展单位
  let cnDecUnits = ['角', '分', '毫', '厘'] //对应小数部分单位
  let cnInteger = '整' //整数金额时后面跟的字符
  let cnIntLast = '元' //整型完以后的单位
  let maxNum = 999999999999999.9999 //最大处理的数字
  let IntegerNum //金额整数部分
  let DecimalNum //金额小数部分
  let ChineseStr = '' //输出的中文金额字符串
  let parts //分离金额后用的数组，预定义
  let Symbol = '' //正负值标记
  if (money === '') {
    return ''
  }

  money = parseFloat(money)
  if (money >= maxNum) {
    alert('超出最大处理数字')
    return ''
  }
  if (money === 0) {
    ChineseStr = cnNums[0] + cnIntLast + cnInteger
    return ChineseStr
  }
  if (money < 0) {
    money = -money
    Symbol = '负 '
  }
  money = money.toString() //转换为字符串
  if (money.indexOf('.') === -1) {
    IntegerNum = money
    DecimalNum = ''
  } else {
    parts = money.split('.')
    IntegerNum = parts[0]
    DecimalNum = parts[1].substr(0, 4)
  }
  if (parseInt(IntegerNum, 10) > 0) { //获取整型部分转换
    let zeroCount = 0
    let IntLen = IntegerNum.length
    for (i = 0; i < IntLen; i++) {
      n = IntegerNum.substr(i, 1)
      let p = IntLen - i - 1
      let q = p / 4
      let m = p % 4
      if (n === '0') {
        zeroCount++
      } else {
        if (zeroCount > 0) {
          ChineseStr += cnNums[0]
        }
        zeroCount = 0 //归零
        ChineseStr += cnNums[parseInt(n)] + cnIntRadice[m]
      }
      if (m === 0 && zeroCount < 4) {
        ChineseStr += cnIntUnits[q]
      }
    }
    ChineseStr += cnIntLast
    //整型部分处理完毕
  }
  if (DecimalNum !== '') { //小数部分
    let decLen = DecimalNum.length
    for (i = 0; i < decLen; i++) {
      n = DecimalNum.substr(i, 1)
      if (n !== '0') {
        ChineseStr += cnNums[Number(n)] + cnDecUnits[i]
      }
    }
  }
  if (ChineseStr === '') {
    ChineseStr += cnNums[0] + cnIntLast + cnInteger
  } else if (DecimalNum === '') {
    ChineseStr += cnInteger
  }
  ChineseStr = Symbol + ChineseStr

  return ChineseStr
}

/**
 * 删除乱七八糟的数据
 * @param obj 数据源
 * @returns {*} 返回干净的数据
 */

export const deleteInvalid = obj => {
  Object.keys(obj).forEach(item => {
    if (!obj[item] && obj[item] === null || obj[item] === '') {
      delete obj[item]
    }
  })
  return obj
}

